# # 使用selenium需要先导入selenium模块
# from selenium import webdriver
# # 使用BY需要先导入BY模块
# from selenium.webdriver.common.by import By
# import time
#
# # 打开浏览器
# d = webdriver.Chrome()  # C大写 打开谷歌浏览器
#
# # 打开指定网址
# d.get('https://www.baidu.com')
# d.maximize_window()
# time.sleep(3)

# d.get('https://www.taobao.com')
# time.sleep(3)
# 定位到百度搜索框 id="kw" name="wd" class="s_ipt"
# 根据id定位到百度搜索框
# search_ele = d.find_element(By.ID, 'kw') # 查找到id为kw的元素
# 根据name定位到百度搜索框
# search_ele = d.find_element(By.NAME, 'wd') # 查找到name为wd的元素
# 根据class定位到百度搜索框
# search_ele = d.find_element(By.CLASS_NAME, 's_ipt')  # 查找到class为s_ipt的元素
#
# # 输入内容 send_keys('输入的内容')
# search_ele.send_keys('刘晓辉')
# time.sleep(3)
#
# # 清空已经输入的内容 clear()
# search_ele.clear()  # 清空元素上已经输入的内容
# time.sleep(3)
#
# # 点击元素 click()
# search_ele.send_keys('忠犬八公')
# butten = d.find_element(By.ID, 'su')
# butten.click()
# time.sleep(3)

# 定位到hao123
# a标签 文本链接标签
# href属性对应的值就是跳转的网址
# a_ele = d.find_element(By.LINK_TEXT, 'hao123') # 定位到hao123这个文本链接
# a_ele.click()

# 局部的文件连接定位
# b_ele = d.find_element(By.PARTIAL_LINK_TEXT, 'hao')
# b_ele.click()
# time.sleep(3)

# d.maximize_window()  # 最大化窗口
# time.sleep(2)
# d.refresh()  # 刷新
# time.sleep(2)
# d.back()  # 返回
# time.sleep(2)
# d.forward()  # 前进
# time.sleep(2)
#
# # 关闭浏览器
# d.quit()

# # 获取标题
# print(d.title)
# # 获取当前窗口的网址
# print(d.current_url)
# # 获取属性对应的值   get_attribute('属性名称')获取该属性对应的值
# butten_ele = d.find_element(By.CSS_SELECTOR, '[id="su"]')
# res = butten_ele.get_attribute('name')
# print(res)
# # 获取文本信息  .text 获取该元素的文本信息
# book_ele = d.find_element(By.CSS_SELECTOR, '[class="title-content-title"]')
# res2 = book_ele.text
# print(res2)

# zp_ele = d.find_element(By.CSS_SELECTOR,'[class="soutu-btn"])')
# zp_ele.click()
# chuan_ele = d.find_element(By.CSS_SELECTOR, '[class="upload-pic"]')
# chuan_ele.send_keys(r'C:\Users\hp\Pictures\Saved Pictures\1111.jpg')
# time.sleep(5)
# d.quit()

# from selenium import webdriver
# from selenium.webdriver.common.by import By
# from selenium.webdriver import ActionChains
# import time
# d = webdriver.Chrome()
# d.get('https://www.qq.com')
# d.maximize_window()
# time.sleep(3)
# # # 定位搜索图标
# # search_butten = d.find_element(By.CSS_SELECTOR, '[id="searchBtn]')
# # res = search_butten.is_displayed() # is_displayed()方法,显示返回True,不显示返回False
# # print(res)
# # # 隐藏元素：只能定位，不可以操作
# # # style="display:none;"    type="hidden"
# # # 如何执行js语句
# # # window.scrollTo(0,与顶部的距离);   拉动窗口的滚动条
# # js = "window.scrollTo(0,700);"
# # d.execute_script(js)

# # 先定位到更多
# more_ele = d.find_element(By.CSS_SELECTOR,'[class="more-txt"]')
# # 移动到更多上面ActionChains(浏览器).move_to_element(移动到哪个元素).perform()
# ActionChains(d).move_to_element(more_ele).perform()
# time.sleep(5)
# # 点击天气
# weather_ele = d.find_element(By.LINK_TEXT,'天气')
# weather_ele.click()
# time.sleep(5)
#
# # 浏览器有两个窗口时selenium默认只在第一个窗口进行操作
# all_windows = d.window_handles # 1,获取所有的窗口列表（窗口1，窗口2）
# time.sleep(5)
# d.switch_to.window(all_windows[1]) # 2,切换窗口，根据窗口列表的下标切换
# time.sleep(5)
# d.close() # 关闭当前窗口

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
d = webdriver.Chrome()
d.get('https://www.mail.163.com')
d.maximize_window()
time.sleep(3)
# 当你确认 你的定位没有问题，但是 Python仍然抛出 NoSuchElementException 异常
# 检查一下，你所定位的元素，是否 处于 一个 frame标签 或者 iframe 标签中
# 处于 frame标签 或者 iframe标签的 ，叫做表单的嵌套，需要切换到 所处的处于 frame标签 或者 iframe标签
# 1,先定位到所处的处于frame标签或者iframe标签
yang_ele = d.find_element(By.CSS_SELECTOR,'[scrolling="no"]')
# 2,切换过去switch_to.frame(表单定位)，切换过去之后就只能操作该表单中的元素了
d.switch_to.frame(yang_ele)
time.sleep(5)
#定位用户输入框，输入内容
user_ele = d.find_element(By.CSS_SELECTOR,'data-loginname="loginEmail"')
user_ele.send_keys('admin123')
time.sleep(3)
# 如果要操作表单之外的元素，跳出表单 switch_to.default_content()  跳到最外层
d.switch_to.default_content() # 跳到最外层
vip_ele = d.find_element(By.LINK_TEXT, 'VIP')
vip_ele.click()
time.sleep(3)
d.quit()














